snagrecover: am6x: Support J721e platforms#84
snagrecover: am6x: Support J721e platforms#84RomainNaour wants to merge 1 commit intobootlin:mainfrom
Conversation
Support the J721e/DRA829/TDA4VM SoC family. Its recovery flow is almost identical to the typical AM6x flow, the only major difference being an additional "sysfw.bin" binary firmware needed for "Split binary with a split firmware" boot flow [1] (like the AM654). Update send_tiboot3() accordingly to download "sysfw.bin" after "tiboot3.bin". Add a new snagrecover template with all four binaries: tiboot3.bin, sysfw.itb, tispl.bin and u-boot.img. Use USB Vendor ID and Product ID from the TDA4VM TRM in Table 4-66 USB Boot Parameter Table [2]: Vendor ID = 0x451 Product ID = 0x6163 But latter in 4.6.8.1.1 DFU Device Mode chapter the Product ID is the same as the am65 SoC (0x6162). This is likely a typo since Product ID 0x6163 is the one used by u-boot for the J721e EVM board [3]. Add Product ID 0x6163 to the TI rules list. Tested on SK-TDA4VM [4] board using its usb-c port by setting SW1 switch in USB boot mode, see the user manual [5]. [1] https://docs.u-boot.org/en/latest/board/ti/k3.html#boot-flow-variations [2] https://www.ti.com/lit/zip/spruil1 [3] https://source.denx.de/u-boot/u-boot/-/blob/v2026.01/configs/j721e_evm_r5_defconfig#L177 [4] https://www.ti.com/tool/SK-TDA4VM [5] https://www.ti.com/lit/pdf/SPRUJ21 Signed-off-by: Romain Naour <romain.naour@smile.fr>
|
I checked other (newer) TI SoC about their "Product ID" value... and it's a mess. Every time we have to double check the "Product ID" really used in u-boot. We can also check the CTRLMMR_USB_DEVICE_ID register reset value. Here is my draft for other TI SoC (I reordered some lines, removed the "am654x" since it use the wrong device ID) About SoC family naming "am6x", It should be "K3" to include other TI SoC using "K3 Multicore SoC architecture platform". Indeed not all TI SoC are named "AM6x": DRA829, DRA821, TDA4VM... For the J721e, the "AM68p" variant doesn't really exist (it appear only in the TRM). It should not be confused with the "real" AM68 that is a "J721S2" SoC. Do you really want a exhaustive list of SoC or can we use their "generic" names ? or have all variant name? |
rgantois
left a comment
There was a problem hiding this comment.
Hi, thanks a lot for the contribution! Looks good to me, aside from a small nitpick which I've mentionned
|
|
||
| if recovery_config["soc_model"].startswith("am654"): | ||
| # Download sysfw.itb if your device (AM654, j721e) uses the split binary boot flow | ||
| # https://docs.u-boot.org/en/latest/board/ti/k3.html#boot-flow-variations |
There was a problem hiding this comment.
This should go in docs/snagrecover.md in the fw_binaries TI section. sysfw.itb is already mentionned for AM654 there, maybe just modify that sentence to mention the new SoC as well. You can add the documentation link there as well.
Sure, I'd be open to that change.
The granularity is different for each SoC family. For TI, I've decided to be quite specific with the SoC model since the boot procedure is quite complex, so I expect some potential for breaking variations from one model to another. So ideally for TI, we'd have one model name for each separate commercialized SoC. Now for rebranded SoCs where the chip is exactly the same but with a different name, I don't expect an exhaustive list. SoC aliases can always be added later if needed, like we did for i.MX8MP. |
Support the J721e/DRA829/TDA4VM SoC family.
Its recovery flow is almost identical to the typical AM6x flow, the only major difference being an additional "sysfw.bin" binary firmware needed for "Split binary with a split firmware" boot flow [1] (like the AM654). Update send_tiboot3() accordingly to download "sysfw.bin" after "tiboot3.bin".
Add a new snagrecover template with all four binaries: tiboot3.bin, sysfw.itb, tispl.bin and u-boot.img.
Use USB Vendor ID and Product ID from the TDA4VM TRM in Table 4-66 USB Boot Parameter Table [2]:
Vendor ID = 0x451
Product ID = 0x6163
But latter in 4.6.8.1.1 DFU Device Mode chapter the Product ID is the same as the am65 SoC (0x6162). This is likely a typo since Product ID 0x6163 is the one used by u-boot for the J721e EVM board [3].
Add Product ID 0x6163 to the TI rules list.
Tested on SK-TDA4VM [4] board using its usb-c port by setting SW1 switch in USB boot mode, see the user manual [5].
[1] https://docs.u-boot.org/en/latest/board/ti/k3.html#boot-flow-variations
[2] https://www.ti.com/lit/zip/spruil1
[3] https://source.denx.de/u-boot/u-boot/-/blob/v2026.01/configs/j721e_evm_r5_defconfig#L177
[4] https://www.ti.com/tool/SK-TDA4VM
[5] https://www.ti.com/lit/pdf/SPRUJ21